﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EF.Caching
{
    /// <summary>
    /// Définit un service de cache.
    /// </summary>
    public interface ICache
    {
        /// <summary>
        /// Indexer de l'instance, retourne l'objet contenu dans le cache
        /// correspondant à la clée passée en paramètre.
        /// </summary>
        /// <param name="key">Clée d'index recherchée</param>
        /// <returns>instance associée dans le cache ou null</returns>
        object this[string key] { get; set; }

        /// <summary>
        /// Retourne si oui ou non le cache contient
        /// quelque chose pour la clée d'index passée en paramètre.
        /// </summary>
        /// <param name="key">Clée d'index recherchée</param>
        bool Contains(string key);
    }
}
